/** \file
* Platform-independent implementations for the debug console class.
* This file is part of Chorus, available at
* http://code.google.com/p/chorus-twitter/ . This file and all associated files
* and derivative works are bound by the terms of the LGPL 3.0 license,
* available at http://www.gnu.org/licenses/lgpl-3.0-standalone.html .
* \par Subversion URL:
* \$URL: http://chorus-twitter.googlecode.com/svn/branches/cpp/src/tests/TestThreads.hpp $
* \version \$Rev: 152 $
* \date    \$Date: 2010-04-06 07:35:13 +0000 (Tue, 06 Apr 2010) $
*/

#pragma once

#include "Test.hpp"

/// The thread testing class.
class TestThreads : public Test
{
public:
	/// Perform the test.
	/// \return True for success.
	virtual bool test();

private:
	/// The very fast test thread callback. Returns immediately.
	/// \return Always true.
	bool vfasttest();
	/// The fast test thread callback. Returns after 30ms.
	/// \return Always true.
	bool fasttest();
	/// The slow test thread callback. Returns after 70ms.
	/// \return Always true.
	bool slowtest();
	/// The very slow test thread callback.
	/// \return Never returns.
	bool vslowtest();
};
